/*
 * @Description: api request
 * @Author: wangyigang
 * @Date: 2022-11-24 14:32:18
 * @LastEditTime: 2022-11-24 15:04:04
 * @LastEditors: wangyigang
 */
import axios from "axios";

import { BASEURL } from "@/api/config";

// 这里取决于登录的时候将 token 存储在哪里
const token = localStorage.getItem("token");

const request = axios.create({
  baseURL: BASEURL,
  timeout: 5000
});

// 设置post请求头
request.defaults.headers.post["Content-Type"] = "application/x-www-form-urlencoded";

// 添加请求拦截器
request.interceptors.request.use(
  config => {
    // 将 token 添加到请求头
    token && (config.headers.Authorization = token);
    return config;
  },
  error => {
    return Promise.reject(error);
  }
);

// 添加响应拦截器
request.interceptors.response.use(
  response => {
    if (response.status === 200) {
      return Promise.resolve(response);
    } else {
      return Promise.reject(response);
    }
  },
  error => {
    // 相应错误处理
    // 比如： token 过期， 无权限访问， 路径不存在， 服务器问题等
    if (error.response && error.response.status) {
      switch (error.response.status) {
        case 401:
          break;
        case 403:
          break;
        case 404:
          break;
        case 500:
          break;
        default:
          console.log("其他错误信息");
      }
    }
    return Promise.reject(error);
  }
);

export default request;
